package com.jmb.jdbc03;

import com.jmb.jdbc02.JdbcUtils;
import org.junit.jupiter.api.Test;
import org.omg.CORBA.PUBLIC_MEMBER;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class TestDML {
    // 主要是学习数据库的插入和删除更改操作。
    // 1. 首先我们还是需要创建链接
    @Test
    public  void Test01() throws SQLException {
        // 2. 这个是我们封装好的JdbcUtils类，然后直接调用我们创建连接的方法
        Connection connection = JdbcUtils.getConnection();
        // 4. 创建我们的statement对象
        Statement statement = connection.createStatement();
        // 5. 执行我们的sql语句
        int updateCount = statement.executeUpdate("insert  into jdbctest values('4' ,'大乔','15')");
        // 6. 打印我们的执行结果，因为是int类型所以返回执行成功的行数。
        System.out.println(updateCount);
        // 3. 这个是我们关闭连接的方法，对应的是我们如果调用创建链接，那么就需要关闭连接
        JdbcUtils.close(connection,statement);
    }
    // 这是我们的更改数据操作
    @Test
    public void Test02() throws SQLException {
        Connection connection = JdbcUtils.getConnection();
        Statement statement = connection.createStatement();
        int i = statement.executeUpdate("UPDATE jdbctest SET name='金博',age=24 WHERE id='3'");
        System.out.println(i);
//        int update = statement.executeUpdate("SELECT * FROM jdbctest");
//        System.out.println(update);
        JdbcUtils.close(connection,statement);
    }
    // 这是我们的查询操作
    @Test
    public void Test03() throws SQLException {
        Connection connection = JdbcUtils.getConnection();
        Statement statement = connection.createStatement();
        ResultSet resultSet = statement.executeQuery("SELECT * FROM jdbctest");
        while (resultSet.next()){
            int id = resultSet.getInt("id");
            System.out.println(id);
            String name = resultSet.getString("name");
            System.out.println(name);
            String age = resultSet.getString("age");
            System.out.println(age);
        }

        JdbcUtils.close(connection,statement,resultSet);
    }
    // 这是我们的删除操作。
    @Test
    public void Test04() throws SQLException {
        Connection connection = JdbcUtils.getConnection();
        Statement statement = connection.createStatement();
        int i = statement.executeUpdate("DELETE FROM jdbctest WHERE id='1'");
        System.out.println(i);
        JdbcUtils.close(connection,statement);

    }
}
